home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / patches / fixslinks / fixslinks.doc < prev    next >
Text File  |  1996-04-07  |  4KB  |  111 lines

  1.  
  2.                                 fixslinks 0.5ß
  3.  
  4.                             (c) 1995 Todd Vierling
  5.                             Freely redistributable
  6.  
  7. (Pardon me, German users; the Alt-s makes a nifty «beta» sign.)
  8.  
  9. "fixslinks" fixes (most of) the problems encountered when using symbolic
  10. links on an Amiga running Kickstart V37 or greater. It does not intercept
  11. packets (so that programs can deliberately look for ERROR_IS_SOFT_LINK),
  12. but only the dos.library calls:
  13.  
  14. * Open()
  15. * DeleteFile()
  16. * Lock()
  17. * CreateDir()
  18. * LoadSeg()
  19. * SetComment()
  20. * SetProtection()
  21. * MakeLink()
  22. * NewLoadSeg()
  23.  
  24. Normally, soft links work the following way:
  25.  
  26. [drive:]softlink/path1/path2[/file] (works)
  27. [drive:]path1/path2/softlink[/]     (works)
  28. [drive:]path1/softlink/path2[/file] (does not work)
  29.  
  30. "fixslinks" will correct the third situation, where a softlink is part of
  31. a full pathname and not at the beginning or end of the path. The correction
  32. is only attempted if one of the calls above returns ERROR_OBJECT_NOT_FOUND;
  33. if indeed the file or directory in question does not exist, it will remain
  34. an error.
  35.  
  36. This program was written through version 0.4ß in six hours, to fix problems
  37. encountered while writing AmiNIX (which I'm finally working on again, after
  38. months of deep financial difficulty). It will likely be updated soon to
  39. finish the To-Do's listed below, and any other requests for enhancements
  40. that may come in for this program.
  41.  
  42. A bug-fixed version of Loren J. Rittle's 'ls 4.7ljr' is included to allow
  43. easy listing of soft links (with ls -l). The original version of this
  44. program incorrectly called DeviceProc() to get the message port and lock
  45. for ReadLink(), and has been changed to correctly extract the port from a
  46. lock on the current directory. I will likely be fixing the program up to
  47. add AmiNIX special file and permission ability, and including it with the
  48. next release of fixslinks.
  49.  
  50. If you have any comments or questions, mail me:
  51. Todd Vierling <amigagod@grove.ufl.edu>
  52.  
  53. ===== Usage
  54.  
  55. run >NIL: fixslinks
  56.  
  57. There are not yet any command line options. They will be added in a future
  58. release. It currently does not check to see if fixslinks is already
  59. running, so run it only once!
  60.  
  61. "fixslinks" doesn't care if you run it before or after other dos.library
  62. patchers, BUT: do note that utilities such as SnoopDos that intercept the
  63. Lock() and CurrentDir() calls will get different information if they are
  64. started before fixslinks. Run these "snooper" utilities after fixslinks.
  65.  
  66. ===== WARNINGS!
  67.  
  68. Most directory tools still don't support soft links. So be very careful!
  69. If you want to delete a soft link, use the CLI command Delete (without the
  70. ALL switch!) to remove it. That way you won't accidentally recurse into
  71. a directory you don't want to.
  72.  
  73. ===== Supplied Files
  74.  
  75. fixslinks    The program
  76. fixslinks.c    The source code
  77. fixslinks.doc    This documentation file.
  78. ls        Bug-fixed 'ls' v4.7-ljr
  79. ls.doc        Docs for the included version of 'ls'
  80. makelink    MakeLink replacement, supports soft links
  81. makelink.doc    Docs for MakeLink replacement
  82. SCOPTIONS    Options file for compiling fixslinks under SAS/C 6.x
  83.  
  84. ===== To-Do's
  85.  
  86. * Support Rename(), Execute(), System(), and (V39) SetOwner().
  87.  
  88. * Make fixslinks launch itself into the background automatically.
  89.  
  90. * Support locking of soft links with no object (by producing a faux lock
  91.   that points to a special MsgPort, accepting only ACTION_EXAMINE and
  92.   ACTION_FREE_LOCK packets). This will allow the commands such as Delete to
  93.   work properly if the link's object does not exist.
  94.  
  95. * Add a (dynamically changeable) option to automatically examine softlink
  96.   objects on an ExNext() or ExAll() call
  97.  
  98. * Add an option to disable or remove fixslinks from memory. (Likely as a
  99.   commodity.)
  100.  
  101. ===== Version History
  102.  
  103. 0.1-0.3    (unreleased) Early work-in-progress versions.
  104.  
  105. 0.4ß    First release.
  106.  
  107. 0.5ß    Added IoErr() == ERROR_OBJECT_NOT_FOUND check to ensure the correct
  108.     error before calling the softlink resolution code. (Now an access
  109.     of DF0:x on an empty drive won't ask to insert a disk twice.)
  110.  
  111.